#ifndef _STDIO_HEADER_
#define _STDIO_HEADER_
#include <stdio.h>
#endif
//
#ifndef _TIME_HEADER_
#define _TIME_HEADER_
#include <time.h>
#endif
//
#ifndef _LINUX_TIME_HEADER_
#define _LINUX_TIME_HEADER_
#include </usr/include/x86_64-linux-gnu/sys/time.h> // 微秒级计时, linux特有time.h， ubuntu系统置于此文件夹下。
#endif

#ifndef _DATA_INTERFACE_
#define _DATA_INTERFACE_
//
#define MAXNAME 100
//
// 1. 常量
// 1.0 基本常量
extern const int NO;
extern const int YES;
// 1.1 控制流输出参数判断
extern const char dot;
//
extern const char *Judge_dot_txt;
//
extern const char *Judge_normal;
extern const char *Judge_elimination;
extern const char *Judge_easy; //将大写字母转小写，降低难度。
extern const char *Judge_goal;
extern const char *Judge_help;
// 以下三个在v4.0版本中弃用
extern const char *Judge_exercise_num;
extern const char *Judge_rand;
extern const char *Judge_ctrl;
// 1.2 工作模式
extern const int mode_null;
extern const int mode_normal;
extern const int mode_elimination;
// 以下三个在v4.0版本中弃用
extern const int mode_abc_positive;
extern const int mode_abc_rand;
extern const int mode_ctrl;
/* -------------------------------------------------------------------------- */
// 2. 变量
// 2.1 练习参数设置
// 2.1.1 练习次数相关
extern int type_ID;
extern int num_lines; //练习行数
extern int tright;
extern int twrong;
// 2.1.2 练习时间相关
extern float t_goal;
// 2.1.3 练习模式相关
extern int type_mode;
extern int if_rand;
extern int if_ctrl;
extern int if_help;
extern int if_easy;
//
// 2.2 练习内容
extern char *examword;
extern char *inword;
extern int num_word;
extern int num_letter;
extern int num_letter_wrong;
//
// 2.3 计时相关
extern time_t time_0, time_start;
extern float val;
extern struct timeval t_start, t_end;
extern long t_val_long;
extern float t_val;
/* -------------------------------------------------------------------------- */
// 3. 文件操作
// 3.1 文件指针
extern FILE *fp_log;
extern FILE *fp_dat;
extern FILE *fp_ctrl;
// 3.2 ctrl模式下需要用到的文件名字符串
extern char work_name[];
extern char txt_name[];
extern char log_name[];
extern char dat_name[];
//
#endif